package pe.edu.upc.dew.grupo5.dao;

import java.util.List;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import pe.edu.upc.dew.grupo5.model.Cliente;

public class ClienteDaoJdbc extends SimpleJdbcDaoSupport implements ClienteDao {

	@Override
	public Cliente getClientePorCodigo(int idCliente) {
		return getSimpleJdbcTemplate().queryForObject("select idCliente,dni,nombre,apellido,email,telefono,sexo,direccion from Cliente where idCliente=?",new BeanPropertyRowMapper<Cliente>(Cliente.class),idCliente);
	}

	@Override
	public List<Cliente> getClientes() {
		return getSimpleJdbcTemplate().query("select idCliente,dni,nombre,apellido,email,telefono,sexo,direccion from Cliente ",new BeanPropertyRowMapper<Cliente>(Cliente.class));
	}

	@Override
	public void eliminarCliente(int idCliente) {
		getSimpleJdbcTemplate().update("delete from Cliente where idCliente=?",idCliente);
	}

	@Override
	public void insertaCliente(Cliente cliente) {
		getSimpleJdbcTemplate()
		.update("insert into cliente(dni,nombre,apellido,email,telefono,sexo,direccion,fechanacimiento,clave) " +
				"values(?,?,?,?,?,?,?,?,?)",
				cliente.getDni(),cliente.getNombre(),cliente.getApellido(),cliente.getEmail(),
				cliente.getTelefono(),cliente.getSexo(),cliente.getDireccion(),
				cliente.getFechaNacimiento(),cliente.getClave());
	}

	@Override
	public Cliente getClientePorMail(String email) {
		return getSimpleJdbcTemplate().queryForObject("select idCliente,dni,nombre,apellido,email,telefono,sexo,direccion,fechanacimiento,clave from Cliente where email=?",new BeanPropertyRowMapper<Cliente>(Cliente.class),email);
	}

	@Override
	public void actualizaCliente(Cliente cliente) {
		getSimpleJdbcTemplate()
		.update("update cliente set dni=?,nombre=?,apellido=?,email=?,telefono=?," +
				"sexo=?,direccion=?,clave=? where idCLiente=?",
				cliente.getDni(),cliente.getNombre(),cliente.getApellido(),
				cliente.getEmail(),cliente.getApellido(),cliente.getSexo(),
				cliente.getDireccion(),cliente.getClave(),cliente.getIdCliente());
		
	}

}
